### Convex Functions

# CB3
 function f(x)
 	return max(x[1]^4+x[2]^2, (2-x[1])^2+(2-x[2])^2, 2*exp(x[2]-x[1]))
 end
 
 x0 = [2.0,2.0]
   #  lb_x = [-5, -5] , ub_x = [5, 5]
 
# DEM 
 function f(x)
 	return max(5*x[1]+x[2], -5*x[1]+x[2], x[1]^2+x[2]^2+4*x[2])
 end
 
 x0 = [1.0,1.0]
   #  lb_x = [-5, -5] , ub_x = [5, 5]
 
# QL
 function f(x)
 	return max(x[1]^2+x[2]^2, x[1]^2+x[2]^2+10*(-4*x[1]-x[2]+4), x[1]^2+x[2]^2+10*(-x[1]-2*x[2]+6))
 end
 
 x0 = [-1.0,5.0]
   #  lb_x = [-5, -5] , ub_x = [5, 5]
 
# LQ
 function f(x)
 	return max(-x[1]-x[2], -x[1]-x[2]+x[1]^2+x[2]^2-1)
 end
 
 x0 = [-0.5,-0.5]
   #  lb_x = [-5, -5] , ub_x = [5, 5]
 
# Rosen-Suzuki
 function f(x)
 	return max(x[1]^2+x[2]^2+2*x[3]^2+x[4]^2-5*x[1]-5*x[2]-21*x[3]+7*x[4], 
 	        x[1]^2+x[2]^2+2*x[3]^2+x[4]^2-5*x[1]-5*x[2]-21*x[3]+7*x[4]+10*(x[1]^2+x[2]^2+x[3]^2+x[4]^2+x[1]-x[2]+x[3]-x[4]-8),
 	        x[1]^2+x[2]^2+2*x[3]^2+x[4]^2-5*x[1]-5*x[2]-21*x[3]+7*x[4]+10*(x[1]^2+2*x[2]^2+x[3]^2+2*x[4]^2-x[1]-x[4]-10),
 	        x[1]^2+x[2]^2+2*x[3]^2+x[4]^2-5*x[1]-5*x[2]-21*x[3]+7*x[4]+10*(2*x[1]^2+x[2]^2+x[3]^2+2*x[1]-x[2]-x[4]-5))
 end
 
 x0 = [0.0,0.0,0.0,0.0]
  #  lb_x = [-10, -10, -10, -10] , ub_x = [10, 10, 10, 10]

# Shor
 function f(x)
 	return max(x[1]^2+x[2]^2+x[3]^2+x[4]^2+x[5]^2,
 	        5*((x[1]-2)^2+(x[2]-1)^2+(x[3]-1)^2+(x[4]-1)^2+(x[5]-3)^2),
 	        10*((x[1]-1)^2+(x[2]-2)^2+(x[3]-1)^2+(x[4]-1)^2+(x[5]-2)^2),
 	        2*((x[1]-1)^2+(x[2]-4)^2+(x[3]-1)^2+(x[4]-2)^2+(x[5]-2)^2),
 	        4*((x[1]-3)^2+(x[2]-2)^2+(x[3]-1)^2+x[4]^2+(x[5]-1)^2),
 	        3*(x[1]^2+(x[2]-2)^2+(x[3]-1)^2+x[4]^2+(x[5]-1)^2),
 	        1.7*((x[1]-1)^2+(x[2]-1)^2+(x[3]-1)^2+(x[4]-1)^2+(x[5]-1)^2),
 	        2.5*((x[1]-1)^2+x[2]^2+(x[3]-1)^2+(x[4]-2)^2+(x[5]-1)^2),
 	        6*(x[1]^2+x[2]^2+(x[3]-2)^2+(x[4]-1)^2+x[5]^2),
 	        3.5*((x[1]-1)^2+(x[2]-1)^2+(x[3]-2)^2+x[4]^2+x[5]^2))
 end
 
 x0 = [0.0,0.0,0.0,0.0,1.0]
    # -10 <= x_i <= 10
 
# Wong 1
 function f(x)
 	return max((x[1]-10)^2+5*(x[2]-12)^2+x[3]^4+3*(x[4]-11)^2+10*x[5]^6+7*x[6]^2+x[7]^4-4*x[6]*x[7]-10*x[6]-8*x[7],
 		(x[1]-10)^2+5*(x[2]-12)^2+x[3]^4+3*(x[4]-11)^2+10*x[5]^6+7*x[6]^2+x[7]^4-4*x[6]*x[7]-10*x[6]-8*x[7]+10*(2*x[1]^2+3*x[2]^4+x[3]+4*x[4]^2+5*x[5]-127),
 		(x[1]-10)^2+5*(x[2]-12)^2+x[3]^4+3*(x[4]-11)^2+10*x[5]^6+7*x[6]^2+x[7]^4-4*x[6]*x[7]-10*x[6]-8*x[7]+10*(7*x[1]+3*x[2]+10*x[3]^2+x[4]-x[5]-282),
 		(x[1]-10)^2+5*(x[2]-12)^2+x[3]^4+3*(x[4]-11)^2+10*x[5]^6+7*x[6]^2+x[7]^4-4*x[6]*x[7]-10*x[6]-8*x[7]+10*(23*x[1]+x[2]^2+6*x[6]^2-8*x[7]-196),
 		(x[1]-10)^2+5*(x[2]-12)^2+x[3]^4+3*(x[4]-11)^2+10*x[5]^6+7*x[6]^2+x[7]^4-4*x[6]*x[7]-10*x[6]-8*x[7]+10*(4*x[1]^2+x[2]^2-3*x[1]*x[2]+2*x[3]^2+5*x[6]-11*x[7]))
 end
 
 x0 = [1.0,2.0,0.0,4.0,0.0,1.0,1.0]
 # -10 <= x_i <= 10
 
# Wong 2
 function f(x)
 	return max(x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+45,
 		 x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+45+10*(3*(x[1]-2)^2+4*(x[2]-3)^2+2*x[3]^2-7*x[4]-120),
 		 x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+45+10*(5*x[1]^2+8*x[2]+(x[3]-6)^2-2*x[4]-40),
 		 x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+45+10*(0.5*(x[1]-8)^2+2*(x[2]-4)^2+3*x[5]^2-x[6]-30),
 		 x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+45+10*(x[1]^2+2*(x[2]-2)^2-2*x[1]*x[2]+14*x[5]-6*x[6]),
 		 x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+45+10*(4*x[1]+5*x[2]-3*x[7]+9*x[8]-105),
 		 x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+45+10*(10*x[1]-8*x[2]-17*x[7]+2*x[8]),
 		 x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+45+10*(-3*x[1]+6*x[2]+12*(x[9]-8)^2-7*x[10]),
 		 x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+45+10*(-8*x[1]+2*x[2]+5*x[9]-2*x[10]-12))
 end
 
 x0 = [2.0,3.0,5.0,5.0,1.0,2.0,7.0,3.0,6.0,10.0]
   # -10 <= x_i <= 10 
 
# Wong 3
 function f(x)
 	return max(x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+(x[11]-9)^2+10*(x[12]-1)^2+5*(x[13]-7)^2+4*(x[14]-14)^2+27*(x[15]-1)^2+x[16]^4+(x[17]-2)^2+13*(x[18]-2)^2+(x[19]-3)^2+x[20]^2+95,
 		x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+(x[11]-9)^2+10*(x[12]-1)^2+5*(x[13]-7)^2+4*(x[14]-14)^2+27*(x[15]-1)^2+x[16]^4+(x[17]-2)^2+13*(x[18]-2)^2+(x[19]-3)^2+x[20]^2+95+10*(3*(x[1]-2)^2+4*(x[2]-3)^2+2*x[3]^2-7*x[4]-120),
 		x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+(x[11]-9)^2+10*(x[12]-1)^2+5*(x[13]-7)^2+4*(x[14]-14)^2+27*(x[15]-1)^2+x[16]^4+(x[17]-2)^2+13*(x[18]-2)^2+(x[19]-3)^2+x[20]^2+95+10*(5*x[1]^2+8*x[2]+(x[3]-6)^2-2*x[4]-40),
 		x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+(x[11]-9)^2+10*(x[12]-1)^2+5*(x[13]-7)^2+4*(x[14]-14)^2+27*(x[15]-1)^2+x[16]^4+(x[17]-2)^2+13*(x[18]-2)^2+(x[19]-3)^2+x[20]^2+95+10*(0.5*(x[1]-8)^2+2*(x[2]-4)^2+3*x[5]^2-x[6]-30),
 		x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+(x[11]-9)^2+10*(x[12]-1)^2+5*(x[13]-7)^2+4*(x[14]-14)^2+27*(x[15]-1)^2+x[16]^4+(x[17]-2)^2+13*(x[18]-2)^2+(x[19]-3)^2+x[20]^2+95+10*(x[1]^2+2*(x[2]-2)^2-2*x[1]*x[2]+14*x[5]-6*x[6]),
 		x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+(x[11]-9)^2+10*(x[12]-1)^2+5*(x[13]-7)^2+4*(x[14]-14)^2+27*(x[15]-1)^2+x[16]^4+(x[17]-2)^2+13*(x[18]-2)^2+(x[19]-3)^2+x[20]^2+95+10*(4*x[1]+5*x[2]-3*x[7]+9*x[8]-105),
 		x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+(x[11]-9)^2+10*(x[12]-1)^2+5*(x[13]-7)^2+4*(x[14]-14)^2+27*(x[15]-1)^2+x[16]^4+(x[17]-2)^2+13*(x[18]-2)^2+(x[19]-3)^2+x[20]^2+95+10*(10*x[1]-8*x[2]-17*x[7]+2*x[8]),
 		x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+(x[11]-9)^2+10*(x[12]-1)^2+5*(x[13]-7)^2+4*(x[14]-14)^2+27*(x[15]-1)^2+x[16]^4+(x[17]-2)^2+13*(x[18]-2)^2+(x[19]-3)^2+x[20]^2+95+10*(-3*x[1]+6*x[2]+12*(x[9]-8)^2-7*x[10]),
 		x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+(x[11]-9)^2+10*(x[12]-1)^2+5*(x[13]-7)^2+4*(x[14]-14)^2+27*(x[15]-1)^2+x[16]^4+(x[17]-2)^2+13*(x[18]-2)^2+(x[19]-3)^2+x[20]^2+95+10*(-8*x[1]+2*x[2]+5*x[9]-2*x[10]-12),
 		x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+(x[11]-9)^2+10*(x[12]-1)^2+5*(x[13]-7)^2+4*(x[14]-14)^2+27*(x[15]-1)^2+x[16]^4+(x[17]-2)^2+13*(x[18]-2)^2+(x[19]-3)^2+x[20]^2+95+10*(x[1]+x[2]+4*x[11]-21*x[12]),
 		x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+(x[11]-9)^2+10*(x[12]-1)^2+5*(x[13]-7)^2+4*(x[14]-14)^2+27*(x[15]-1)^2+x[16]^4+(x[17]-2)^2+13*(x[18]-2)^2+(x[19]-3)^2+x[20]^2+95+10*(x[1]^2+15*x[11]-8*x[12]-28),
 		x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+(x[11]-9)^2+10*(x[12]-1)^2+5*(x[13]-7)^2+4*(x[14]-14)^2+27*(x[15]-1)^2+x[16]^4+(x[17]-2)^2+13*(x[18]-2)^2+(x[19]-3)^2+x[20]^2+95+10*(4*x[1]+9*x[2]+5*x[13]^2-9*x[14]-87),
 		x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+(x[11]-9)^2+10*(x[12]-1)^2+5*(x[13]-7)^2+4*(x[14]-14)^2+27*(x[15]-1)^2+x[16]^4+(x[17]-2)^2+13*(x[18]-2)^2+(x[19]-3)^2+x[20]^2+95+10*(3*x[1]+4*x[2]+3*(x[13]-6)^2-14*x[14]-10),
 		x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+(x[11]-9)^2+10*(x[12]-1)^2+5*(x[13]-7)^2+4*(x[14]-14)^2+27*(x[15]-1)^2+x[16]^4+(x[17]-2)^2+13*(x[18]-2)^2+(x[19]-3)^2+x[20]^2+95+10*(14*x[1]^2+35*x[15]-79*x[16]-92),
 		x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+(x[11]-9)^2+10*(x[12]-1)^2+5*(x[13]-7)^2+4*(x[14]-14)^2+27*(x[15]-1)^2+x[16]^4+(x[17]-2)^2+13*(x[18]-2)^2+(x[19]-3)^2+x[20]^2+95+10*(15*x[2]^2+11*x[15]-61*x[16]-54),
 		x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+(x[11]-9)^2+10*(x[12]-1)^2+5*(x[13]-7)^2+4*(x[14]-14)^2+27*(x[15]-1)^2+x[16]^4+(x[17]-2)^2+13*(x[18]-2)^2+(x[19]-3)^2+x[20]^2+95+10*(5*x[1]^2+2*x[2]+9*x[17]^4-x[18]-68),
 		x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+(x[11]-9)^2+10*(x[12]-1)^2+5*(x[13]-7)^2+4*(x[14]-14)^2+27*(x[15]-1)^2+x[16]^4+(x[17]-2)^2+13*(x[18]-2)^2+(x[19]-3)^2+x[20]^2+95+10*(x[1]^2-x[2]+19*x[19]-20*x[20]+19),
 		x[1]^2+x[2]^2+x[1]*x[2]-14*x[1]-16*x[2]+(x[3]-10)^2+4*(x[4]-5)^2+(x[5]-3)^2+2*(x[6]-1)^2+5*x[7]^2+7*(x[8]-11)^2+2*(x[9]-10)^2+(x[10]-7)^2+(x[11]-9)^2+10*(x[12]-1)^2+5*(x[13]-7)^2+4*(x[14]-14)^2+27*(x[15]-1)^2+x[16]^4+(x[17]-2)^2+13*(x[18]-2)^2+(x[19]-3)^2+x[20]^2+95+10*(x[1]^2+5*x[2]^2+x[19]^2-30*x[20]))
 end
 
 x0 = [2.0,3.0,5.0,5.0,1.0,2.0,7.0,3.0,6.0,10.0,2.0,2.0,6.0,15.0,1.0,2.0,1.0,2.0,1.0,3.0]
 # -20 <= x_i <= 20
 
# MAXL
 function f(x)
 	return max(x[1],x[2],x[3],x[4],x[5],x[6],x[7],x[8],x[9],x[10],x[11],x[12],x[13],x[14],x[15],x[16],x[17],x[18],x[19],x[20])
 end
 
 x0 = [1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,-11.0,-12.0,-13.0,-14.0,-15.0,-16.0,-17.0,-18.0,-19.0,-20]
 #  -20 <= x_i <= 20
 
### Non-Convex Functions

# Crescent
 function f(x)
 	return max(x[1]^2+(x[2]-1)^2+x[2]-1,-x[1]^2-(x[2]-1)^2+x[2]+1)
 end
 
 x0 = [-1.5,2.0]
    # -10 <= x_i <= 10
 
# Mifflin 2
 function f(x)
 	return -x[1]+2*(x[1]^2+x[2]^2-1)+1.75*abs(x[1]^2+x[2]^2-1)
 end
 
 x0 = [-1.0,-1.0]
   # -10 <= x_i <= 10
 
# SPIRAL
 function f(x)
 	return max((x[1]-sqrt(x[1]^2+x[2]^2)*cos(sqrt(x[1]^2+x[2]^2)))^2+0.005*(x[1]^2+x[2]^2),(x[2]-sqrt(x[1]^2+x[2]^2)*sin(sqrt(x[1]^2+x[2]^2)))^2+0.005*(x[1]^2+x[2]^2))
 end
 
 x0 = [1.4,-4.8]
 # -7 <= x_i <= 7
  
# L1 version of Rosenbrock function
 function f(x)
 	return abs(x[1]-1)+100*abs(x[2]-abs(x[1]))
 end
 
 x0 = [2,-1.2]
 # -5 <= x_i <= 5

### Large Problems
# choose any bounds that contain the starting point - x_base
 		
# Chained crescent II 
 function f(x)
    n = length(x)
    l_1 = [x[i]^2 + (x[i+1] - 1)^2 + x[i+1] - 1 for i in 1:n-1]
    l_2 =  [-x[i]^2 - (x[i+1] - 1)^2 + x[i+1] + 1 for i in 1:n-1]
    return sum([max(l_1[i], l_2[i]) for i in 1:n-1])
 end
 
 x_base = [i%2==0 ? -1.5 : 2.0 for i in 1:n]
 
# Chained crescent I 
 function f(x)
     n = length(x)
     l_1 = [x[i]^2+(x[i+1]-1)^2+x[i+1]-1 for i in 1:n-1]
     l_2 = [-x[i]^2-(x[i+1]-1)^2+x[i+1]+1 for i in 1:n-1]
     return max(sum(l_1[i] for i in 1:n-1), sum(l_2[i] for i in 1:n-1))   
 end
 
 x_base = [i%2==0 ? -1.5 : 2.0 for i in 1:n]
 
# Chained Mifflin 2  
 function f(x)
     n = length(x)
     l_1 = [-x[i]+2*(x[i]^2+x[i+1]^2-1)+1.75*abs(x[i]^2+x[i+1]^2-1) for i in 1:n-1]
     return sum(l_1[i] for i in 1:n-1)
 end
 
 x_base = ones(n)
 
 
# Chained CB3 II 
 function f(x)
    n = length(x)
    l_1 = [x[i]^4+x[i+1]^2 for i in 1:n-1]
    l_2 = [(2-x[i])^2+(2-x[i+1])^2 for i in 1:n-1]
    l_3 = [2*exp(-x[i]+x[i+1]) for i in 1:n-1]
    return max(sum(l_1[i] for i in 1:n-1), sum(l_2[i] for i in 1:n-1), sum(l_3[i] for i in 1:n-1))
 end
 
 x_base = ones(n)*2.0 
 
# Chained LQ 
 function f(x) 
    n = length(x)
    l_1 = [-x[i]-x[i+1] for i in 1:n-1]
    l_2 = [-x[i]-x[i+1]+(x[i]^2+x[i+1]^2-1) for i in 1:n-1]
    return sum([max(l_1[i], l_2[i]) for i in 1:n-1])
 end
 
 x_base = ones(n) * -0.5
 
# Chained CB3 I 
 function f(x)
    n = length(x)
    l_1 = [x[i]^4+x[i+1]^2 for i in 1:n-1]
    l_2 = [(2-x[i])^2+(2-x[i+1])^2 for i in 1:n-1]
    l_3 = [2*exp(-x[i]+x[i+1]) for i in 1:n-1]
    return sum([max(l_1[i], l_2[i], l_3[i]) for i in 1:n-1])
 end
 
 x_base = ones(n) * 2.0
